package com.yvon.service.demo.spring.beans.factory.config;

import com.yvon.service.demo.spring.beans.BeansException;

/**
 * bean后置处理器
 *
 * 用于在Bean对象执行初始化方法前后，对Bean对象进行修改、记录、替换等。
 *
 * @author : Yvon
 * @since : 2022-12-06
 */
public interface BeanPostProcessor {

    /**
     * 在 Bean 对象执行初始化方法之前，执行此方法
     *
     * @param bean     bean
     * @param beanName bean名字
     * @return {@code Object }
     */
    Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException;

    /**
     * 在 Bean 对象执行初始化方法之后，执行此方法
     *
     * @param bean     豆
     * @param beanName bean名字
     * @return {@code Object }
     */
    Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException;
}
